<!DOCTYPE html>
<html lang="en">
<head xmlns:th="http://www.thymeleaf.org">
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/css/bootstrap.min.css">
    <script src="/js/jquery-3.6.1.min.js"></script>
    <style type="text/css">
        /*不同颜色的条纹表格*/
        /*odd 表示奇数行*/
        table.table-striped tr:nth-child(odd) td{
            background: lightblue;
        }
        /*even 表示偶数行*/
        table.table-striped tr:nth-child(even) td{
            background: lightpink;
        }
        /*鼠标悬停，表格变颜色*/
        /*table.table-hover tr:hover{*/
        /*    background: yellowgreen;*/
        /*}*/
        /*#bt1{*/
        /*    position: absolute;*/
        /*    left: 56.5%;*/
        /*    top: 30.8%;*/
        /*}*/
    </style>
    <link rel="stylesheet" href="/plugins/bootstraptable/bootstrap-table.min.css">


</head>
<body>
<div class="container-fluid" style="border: red solid 1px">
    <!--<div class="container-fluid">-->
    <p align="center" style="font-size: 30px">学生表</p>
    <!-- Button trigger modal -->
    <form class="form-inline">
        <div class="form-group">
            <label for="searchName">请输入姓名：</label>
            <input type="text" class="form-control" id="searchName" placeholder="请输入名称" name="searchName">
            <label for="searchNo">请输入学号：</label>
            <input type="text" class="form-control" id="searchNo" placeholder="请输入学号" name="searchNo">
        </div>
        <button type="button" class="btn btn-info" onclick="search();">查找</button>
        <button type="button" class="btn btn-info" data-toggle="modal" data-target="#myModal" onclick="preAdd()">
            新增学生
        </button>
    </form>
<!--    <button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal" onclick="preAdd()">-->
<!--        新增学生-->
<!--    </button>-->

    <br>
    <br>

    <!--    table-bordered:给表格加外边框-->
    <!--    table-hover:鼠标悬停时，对应的行变色-->
    <!--    table-striped:条纹状表格-->
    <!--        table-condensed:紧缩表格-->
    <table class="table table-bordered table-striped" id="stuTable" >

    </table>
</div>

<div class="modal fade" tabindex="-1" role="dialog" id="myModal">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title">学生信息</h4>
            </div>
            <div class="modal-body">
                <form id="formStudent">
                    <input hidden="hidden" id="id" name="id" />
                    <div class="form-group">
                        <label for="no">学号</label>
                        <input type="text" class="form-control" id="no" name="no" placeholder="学号">
                    </div>
                    <div class="form-group">
                        <label for="name">姓名</label>
                        <input type="text" class="form-control" id="name" name="name" placeholder="姓名">
                    </div>
                    <div class="form-group">
                        <label for="password">密码</label>
                        <input type="password" class="form-control" id="password" name="password" placeholder="密码">
                    </div>
                    <div class="form-group">
                        <label for="sex">性别</label>
                        <select class="form-control" id="sex" name="sex">
                            <option value="1">男</option>
                            <option value="2">女</option>

                        </select>
                    </div>
                    <div class="form-group">
                        <label for="age">年龄</label>
                        <input type="text" class="form-control" id="age" name="age" placeholder="年龄">
                    </div>
                    <div class="form-group">
                        <label for="score">成绩</label>
                        <input type="text" class="form-control" id="score" name="score" placeholder="成绩">
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" onclick="saveStudent()">保存</button>

            </div>
        </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<br>
<br>
<br>

<!--<form class="form-inline" role="form" align="center">-->
<!--    <div class="form-group">-->
<!--        &lt;!&ndash;        文本域通过 <input type="text"> 标签来设定，当用户要在表单中键入字母、数字等内容时，就会用到文本域。&ndash;&gt;-->
<!--        <input type="text" class="form-control" id="nameorno"-->
<!--               placeholder="请输入姓名或者学号">-->
<!--        <input type="button" onclick="sel()" value="查询" />-->
<!--        <input type="button" onclick="goback()" value="返回" />-->
<!--    </div>-->
<!--    &lt;!&ndash;    <button onclick="sel()" class="btn btn-default" id="bt1">查询</button>&ndash;&gt;-->

<!--</form>-->

<br>
<br>
<br>
<!--<pre><p id="p1"align="center"></p></pre>-->

<script src="/js/bootstrap.min.js"></script>
<script src="/plugins/bootstraptable/bootstrap-table.min.js"></script>

<script src="/plugins/bootstraptable/locale/bootstrap-table-zh-CN.min.js"></script>



<script type="text/javascript">

    function search() {

        // bootstrap table destroy注销销毁表格的方法，销毁后如果要继续使用就需要重新初始化bootstrap table。
        $('#stuTable').bootstrapTable("destroy");

        loadTable();
    }
    // function operation(value,row,index){
    //
    //     console.log("value row index")
    //
    //     return "<button class=\"btn btn-info btn-sm\" onclick='editStudent("+value+");'>编辑 </button>" +
    //         "<button class=\"btn btn-info btn-sm\" onclick='deleteStudent("+value+");'>删除 </button> "
    //
    //
    // }

    function preAdd(){
        $("#id").val(0);//提示新增
    }
    //新增或者更新
    function saveStudent(){

        // ajax获取form表单所有值,serialize() 函数用于序列化对象或数组，并返回一个字符串。可以一次性获取到表单中的所有的数据。
        // 注意：在使用 serialize() 函数快速获取表单数据时， 必须为每个表单元素添加 name 属性 ！
        let data=$("#formStudent").serialize();
        let id=$("#id").val();
        if(id<1){
            //是新增
            $.ajax({
                url:"/webapi/student/insert",
                method:"post",
                data:data
            }).done(function(){

                loadTable();
                // 把modal隐藏
                $('#myModal').modal('hide')
            })
        }
        else{
            //是更新
            $.ajax({
                url:"/webapi/student/update",
                method:"put",
                data:data
            }).done(function(){

                loadTable();
                $('#myModal').modal('hide')
            })
        }
        $('#stuTable').bootstrapTable("destroy");

    }

    function editStudent(id){

        $("#myModal").modal('show');

        $.ajax({

            url:"/webapi/student/get/"+id

        }).done(function(rs){

            $("#id").val(rs.id);
            $("#no").val(rs.no);
            $("#name").val(rs.name);
            $("#password").val("");
            $("#sex").val(rs.sex);
            $("#age").val(rs.age);
            $("#score").val(rs.score);
        })
    }

    function deleteStudent(id){
        if(confirm("你是否真的要删除吗？别后悔哦！")){

            $.ajax({

                url:"/webapi/student/delete/"+id,
                method:"delete"

            }).done(function(){
                $('#stuTable').bootstrapTable("destroy");
                loadTable();

            });
        }

    }//end if
    function loadTable(){
        $('#stuTable').bootstrapTable({
            url: '/webapi/student/getbypage',
            striped:true,//设置为true会有隔行变色效果
            pagination:true,//设置为true会在底部显示分页条
            singleSelect: false,//设置为true将禁止多选
            pageSize:3,// 如果设置了分页 每页三行
            pageNumber:1,//如果设置了分页 首页页码
            sidePagination: "server",//设置在哪里进行分页，可选值为“client‘或者
            //得到查询的参数
            queryParams:function(params){
                let para0bj = {
                    size: params.limit, //页面大小//默认是10
                    page:params.offset/params.limit,//页码
                    sort:"id",
                    direct:"desc",
                    name:$("#searchName").val(),
                    no:$("#searchNo").val()
                };
                return para0bj;
            },

            columns: [{
                field: 'id',
                title: '编号'
            }, {
                field: 'name',
                title: '姓名'
            }, {
                field: 'sex',
                title: '性别',
                //获取性别列的值进行转换
                formatter:  function (data,row,index){
                    if(data==1)
                        return "男";
                    else if(data==2)
                        return "女";
                    else
                        return "未知";
                }
            },{
                field: 'score',
                title: '成绩'
            },{
                field: 'id',
                title: '操作',
                width:"130px",
                // formatter:operation
                formatter:  function (value,row,index){

                    console.log("value row index")

                    return "<button class=\"btn btn-info btn-sm\" onclick='editStudent("+value+");'>编辑" +
                        "</button><button class=\"btn btn-info btn-sm\" onclick='deleteStudent("+value+");'>删除 </button> "


                }
            },]
        })


    }
    $(function() {

        loadTable();
    });

</script>


<!--<script th:inline="javascript">-->
<!--    let student=[[${data}]];-->
<!--    let len=student.length;-->
<!--    function sel(){-->
<!--        // Document 的方法 getElementById () 返回一个匹配特定 ID 的元素-->
<!--        let p1 = document.getElementById("p1");-->
<!--        // Document 的方法 getElementById ().value 返回一个匹配特定 ID 的元素的值-->
<!--        let dd=document.getElementById("nameorno").value;-->
<!--        let dx="";-->
<!--        let html = "";-->
<!--        for(let i=0;i<len;i++)-->
<!--        {-->

<!--            if(student[i].name==dd||student[i].no==dd) {-->
<!--                let dsex = student[i].sex;-->
<!--                // 判断性别，将数字转为文字-->
<!--                if (dsex == 1) {-->
<!--                    dsex = "男";-->
<!--                } else if (dsex == 2) {-->
<!--                    dsex = "女";-->
<!--                } else {-->
<!--                    dsex = "未知";-->
<!--                }-->
<!--                dx += "学号: " + student[i].no + "  " + "姓名: " + student[i].name + "  " + "性别: " + dsex + "  " + "年龄: " + student[i].age + "分数:" + student[i].score+"\n\n";-->
<!--                p1.innerHTML=dx;-->

<!--                // 修改对象 p1的值-->

<!--                // break;-->
<!--                //-->

<!--                html += "<tr>"-->
<!--                    + "<td>" +student[i].id + "</td>"-->
<!--                    + "<td>" + student[i].no + "</td>"-->
<!--                    + "<td>" +student[i].name + "</td>"-->
<!--                    + "<td>" + student[i].password + "</td>"-->
<!--                    + "<td>" +dsex + "</td>"-->
<!--                    + "<td>" + student[i].age + "</td>"-->
<!--                    + "<td>" + student[i].score + "</td>"-->
<!--                    + "<td> <a href='#' onclick='editStudent("+student[i].id+");'>编辑</a>  <a href='#' onclick='deleteStudent("+student[i].id+");'>删除</a></td>"-->

<!--                    + "</tr>";-->

<!--                $("#studentTb").html(html);-->
<!--            }-->
<!--            else if(dd==""){-->
<!--                dx="查无此人"-->
<!--                p1.innerHTML=dx;-->
<!--            }-->

<!--        }-->


<!--    }-->
<!--    function goback(){-->
<!--        loadTable();-->
<!--    }-->

<!--</script>-->
</body>
</html>